#ifndef _COMMENT_H_
#define _COMMENT_H_
#include <stdio.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/epoll.h>
#include <sqlite3.h>
#include <dirent.h>
#include <time.h>

#define CLOSE printf("\033[0m");   // 关闭彩色字体
#define RED printf("\033[31m");    // 红色字体
#define GREEN printf("\033[36m");  // 绿色字体
#define YELLOW printf("\033[33m"); // 黄色字体
#define BLUE printf("\033[34m");   // 蓝色字体
enum
{
    REGISTER = 1,
    LOGIN,
    ONLINE,
    OFFLINE,
    PRIVATE,
    PRIVATE_CHAT,
    GROUP,
    FIND_PASSWORD,
    ADD_FRIEND,
    DELETE_FRIEND,
    SHOW_RECONDS,
    SEND_FILE,
    SHOW_FILE,
    RECV_FILE,
    FILE_END,
    EXIT,
};

//用户结构体
typedef struct User
{
    char name[30];
    char password[30];
    char question[50];
    char answer[50];
} User;

//消息结构体
typedef struct Message
{
    unsigned short type;    // 消息类型
    char time[30];
    char content[1024];         // 消息内容
    User msg_from;     //消息发送者
    User msg_to;       //消息接收者   
} Message;
//链表结构体
typedef struct ClientNode
{
    User user;
    int client_sock;
    struct sockaddr_in client_addr;
    struct ClientNode *next;
} ClientNode;
//文件结构体类型
typedef struct File{
    int file_byte;
    int send_byte;
    char buf[1000];
}File;

#endif
